package net.csdn.business.mirror.service;

import net.csdn.business.common.domain.request.mirror.MirrorUserTokenDTO;
import net.csdn.business.mirror.entity.bean.UserGithubToken;

public interface UserGithubTokenService {
    // 获取用户最新token
    UserGithubToken latest(String userId);

    UserGithubToken latest(String userId, Integer type);

    UserGithubToken latest(String userId, String token);

    UserGithubToken latest(String userId, String token, Integer type);

    /**
     * 根据userId和type获取有效token
     * @param userId
     * @param type
     * @return
     */
    UserGithubToken getValidToken(String userId, Integer type);


    /**
     * 根据userId和type获取token，忽略是否有效
     * @param userId
     * @param type
     * @return
     */
    UserGithubToken getToken(String userId, Integer type);

    /**
    * @Description: 新增或更新用户token配置
    * @Param:
    * @return:
    * @Author: zhangyl
    * @Date: 2024/7/18
    */
    int addOrUpdate(MirrorUserTokenDTO params);


    /**
     * @Description: 验证用户token是否有效,生产端
     * @Param:
     * @return:
     * @Author: zhangyl
     * @Date: 2024/7/26
     */
    void execVerifyTokenProducer();


    /**
    * @Description: 验证用户token是否有效，消费端
    * @Param:
    * @return:
    * @Author: zhangyl
    * @Date: 2024/7/26
    */
    void execVerifyTokenConsumer();

}
